#include "mainwindow.h"
#include "ui_mainwindow.h"
#include <QLabel>
#include <QDebug>
#include <QLineEdit>
#include <QObject>

// 如果我们想要通过代码投建界面，通常会将代码放到MainWindow类的构造函数里面
MainWindow::MainWindow(QWidget *parent)
    : QMainWindow(parent)
    , ui(new Ui::MainWindow)
{
    ui->setupUi(this);
    // 使用Label实现hello world
//    // 最好是在堆上创建对象
//    QLabel* label = new QLabel(this); // 传入的this指针是是为了给当前创建的Label对象指定一个父对象

//    // 给label设置一个文本
//    label->setText("hello world!!"); // label这个对象会在合适的地方被自动释放
//    // 通过代码创建的QLabel标签，默认是在左上角的

    // 使用编辑框实现hello world
//    // 使用单行编辑框实现hello world
//    QLineEdit* qline = new QLineEdit(this);
//    qline->setText("hello world!!");

    // 使用按钮的方式实现hello world
    myButton = new QPushButton(this);
    myButton->setText("hello world!!");


    // 给按钮连接处理函数
    connect(myButton, &QPushButton::clicked, this, &MainWindow::handler);


}


MainWindow::~MainWindow()
{

    // 在Qtcrator中如果想要在显示器中打印，不能直接使用C++中的cout(会出现中文乱码问题)
    // 而要使用Qt给我们提供的一个打印的工具——QDebug()
    qDebug() << "MainWindow 被销毁了!!";
    delete ui;
}

void MainWindow::handler()
{
    // 当我们的按钮被点击的时候，就将按钮中的文本进行切换
    // 实现循环切换
    if (myButton->text() == QString("hello world!!")) {
        myButton->setText("hello Qt!!!");
    } else {
        myButton->setText("hello world!!");
    }


}

